翻訳と辞書 |
Common Lisp Object System : ウィキペディア日本語版 | Common Lisp Object System[こもん りすぷ おぶじぇくとしすてむ] Common Lisp Object System(コモン リスプ オブジェクトシステム、略称 CLOS)は、ANSI Common Lisp (CL) の一部をなすオブジェクト指向プログラミング機能であり、他の類似の言語(EuLisp や Emacs Lisp)にも導入されている〔「CLOS は標準規格である。複数のベンダーがCLOSを提供している。CLOS やその一部は他のLISP系言語である EuLisp や EmacsLisp にオブジェクト指向を導入するのに使われている」 p. 110 (Veitch 1998)〕。当初アドオンとして提案され、ANSIの標準に組み込まれた。CLOS は''強い型付け''をもつ(無名クラスは許されない)動的(実行時に定義を変更できる)オブジェクトシステムであり、C++やJavaのような静的なオブジェクト指向言語とは大きく異なる。初期のLISPオブジェクトシステム(MIT Flavors や Common LOOPS)に影響されているが、より汎用的である。 LISPにオブジェクト指向を導入することは簡単である。2ページ程度のコードがあれば実現できる(Graham, 1994)。一方、オブジェクト指向LISPを柔軟で拡張性に富んだものに設計するのはより困難であった。CLOS は完全なオブジェクトシステムであり、オブジェクト指向風に実装されている。CLOS のオブジェクト指向実装は CLOS Metaobject Protocol (MOP) と呼ばれ、これによってカスタマイズや拡張が可能となっている。〔p. 108 (Veitch 1998)〕 == 特徴 ==
=== 多重ディスパッチ === CLOS は多重ディスパッチシステムである。すなわち、引数のデータ型によってメソッドを用意できる。多くのオブジェクト指向言語は単一ディスパッチであり、メソッドは第一引数のデータ型でしか多重化できない。CLOS のメソッドは総称関数にグループ化される。総称関数は同じ名前と引数構造を持つ(ただし個々の引数のデータ型が異なる)メソッドを集めたものである。後の例によりこのことをより良く説明する。
抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Common Lisp Object System」の詳細全文を読む
スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース |
Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.
|
|